<!DOCTYPE html>
<html lang="zh">

	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta http-equiv="X-UA-Compatible" content="ie=edge" />
		<title>Web Uploader</title>
		<script src="../../js/lib/jquery-v1.9.1/jquery.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../js/lib/webuploader-v0.1.5/webuploader.js" type="text/javascript" charset="utf-8"></script>

		<link rel="stylesheet" type="text/css" href="../../js/lib/webuploader-v0.1.5/webuploader.css" />
		<link rel="stylesheet" type="text/css" href="index.css" />
	</head>

	<body>
		<h1>Web Uploader 文件上传示例</h1>
		<div id="uploader" class="wu-example">
			<div class="btns">
				<div id="picker">选择文件</div>
				<div id="picker2">选择文件2</div>
				<button id="ctlBtn" class="btn btn-default">开始上传</button>
			</div>
			<!--用来存放文件信息-->
			<div id="file-list" class="uploader-list"></div>
		</div>

		<script type="text/javascript">
			$(function() {
				debugger;
				var $ = jQuery,
					$list = $('#file-list'),
					$btn = $('#ctlBtn'),
					state = 'pending',
					uploader;

				var BASE_URL = "../../js/lib/webuploader-v0.1.5/";

				uploader = WebUploader.create({
					// swf文件路径
					swf: BASE_URL + 'Uploader.swf',
					// 文件接收服务端。
					//server: 'http://webuploader.duapp.com/server/fileupload.php',
					server: 'http://127.0.0.1:46001/files/file-upload.php',
					// 选择文件的按钮。可选。
					// 内部根据当前运行是创建，可能是input元素，也可能是flash.
					pick: '#picker',

					// 不压缩image, 默认如果是jpeg，文件上传前会压缩一把再上传！
					resize: false
				});
				uploader.addButton({
					id: '#picker2',
					innerHTML: '选择文件2'
				});
				// 当有文件被添加进队列的时候
				uploader.on('fileQueued', function(file) {
					$list.append('<div id="' + file.id + '" class="item">' +
						'<h4 class="info">name:' + file.name + '</h4>' +
						'<h4 class="info">size:' + (parseInt(file.size / 1024)) + 'kb</h4>' +
						'<h4 class="info">type:' + file.type + '</h4>' +
						'<p class="state">等待上传...</p>' +
						'</div>');
				});
				// 文件上传过程中创建进度条实时显示。
				uploader.on('uploadProgress', function(file, percentage) {
					var $li = $('#' + file.id),
						$percent = $li.find('.progress .progress-bar');

					// 避免重复创建
					if(!$percent.length) {
						$percent = $('<div class="progress progress-striped active">' +
							'<div class="progress-bar" role="progressbar" style="width: 0%">' +
							'</div>' +
							'</div>').appendTo($li).find('.progress-bar');
					}

					$li.find('p.state').text('上传中');

					$percent.css('width', percentage * 100 + '%');
				});

				uploader.on('uploadSuccess', function(file) {
					$('#' + file.id).find('p.state').text('已上传');
				});

				uploader.on('uploadError', function(file) {
					$('#' + file.id).find('p.state').text('上传出错');
				});

				uploader.on('uploadComplete', function(file) {
					$('#' + file.id).find('.progress').fadeOut(1000);
				});
				uploader.on('all', function(type) {
					if(type === 'startUpload') {
						state = 'uploading';
					} else if(type === 'stopUpload') {
						state = 'paused';
					} else if(type === 'uploadFinished') {
						state = 'done';
					}

					if(state === 'uploading') {
						$btn.text('暂停上传');
					} else {
						$btn.text('开始上传');
					}
				});

				$btn.on('click', function() {
					if(state === 'uploading') {
						uploader.stop();
					} else {
						uploader.upload();
					}
				});
			})
		</script>
	</body>

</html>